<?php
/**
 * 操作用户表的Model
 */
class UserModel extends Model {

	public $validate = array( array('username', 'nonull', '必须填写用户名', 1, 3), array('password', 'nonull', '密码必须填写', 1, 3), array('code', 'nonull', '验证码不能为空', 1, 3));
	
	
	//添加一个自动完成  将密码自动加密
	public $auto = array( 
		array('password', 'md5', 'function', 3, 3),
		array('password_reg1', 'md5','function',3,3),
//		array('username', 'checkName','method',2,3),
		);
	public $map = array('username_reg'=>'username','password_reg1'=>'password');
		
	
	
	/**
	 * 检测用户是否存在
	 */
	public function checkUser($data) {
		//使用自动验证和自动完成
		if ($this -> create($data)) {
			if (Q('post.code', '', 'strtoupper') != session('code')) {
				$this -> error = '验证码输入不正确';
				return false;
			}
			//检测用户是否存在还有就是是否为管理员如果是条件都成立那么返回true否则返回false
			$result = $this -> find("username='{$this->data['username']}' && password='{$this->data['password']}' && is_admin=1");
			if ($result) {
				return $result;
			} else {
				$this -> error = '用户或密码不正确!';
			}
		} else {
			$this -> error($this -> error);
		}

	}
	
	/**
	 *  查询所有前台用户也就是is_admin  为0 的用户
	 */
	 public function findUser($admin=0,$limit=14){
	 	$result = $this->where("is_admin={$admin}")->limit($limit)->select();
		return $result;
	 }
	
	
	/**
	 * 锁定或解锁一个用户
	 */
	 public function isLock($uid,$lock){
	 		
	 	if($this->save(array('uid'=>$uid,'is_lock'=>$lock))){
	 		return true;
	 	}else{
	 		return false;
	 	}
		
	 }
	
	/**
	 * 修改用户密码
	 */
	 public function cpwd(){
	 	if(!$this->create()) return false;
		if($this->update($this->data)){
			return true;
		}else{
			return false;
		}
	 }
	
	/**
	 * 检测当前用户是否存在
	 */
	 public function checkName($username){
	 	if($this->where("username='{$username}'")->find()){
	 		return false;
	 	}else{
	 		return true;
	 	}		
	 }
	 
	 /**
	  * 检测昵称是否存在
	  */
	  public function checkNick($nickname){
	  	if($this->where("nickname='{$nickname}'")->find()){
	  		return false;
	  	}else{
	  		return true;
	  	}
	  }
	
	/**
	 * 将用户信息写入数据库
	 */
	 public function addUser(){
	 	if(!$this->create()) return false;
		
		$data = $this->data;
		if(!$this->checkName(Q('post.username_reg'))){
			$this->error = '用户已经存在';
			return false;
		}
		if(!$this->checkNick(Q('post.nickname'))){
			$this->error = '昵称已经存在';
			return false;
		}
		
		if($this->add($data)){
			return true;
		}
	 }
	
	/**
	 * 登陆检测
	 */
	 public function loginCheck(){
	 	$username = Q('post.username');
		$password = md5(Q('post.password'));
		$result = $this->field('uid,username,is_lock')->where("username='{$username}' AND password='{$password}'")->find();
		if($result){
			return $result;
		}else{
			$this->error = '用户或密码错误';
		}
	 }
	

}
